import {create} from 'zustand' // 导入create函数，用于创建store对象
import {immer} from 'zustand/middleware/immer'
import {persist,createJSONStorage} from 'zustand/middleware' // 持久化存储中间件
const useInsBookStore = create(
    persist(
        immer((set, get) => ({ // immer中间件，用于支持直接修改state对象，而不需要返回新的state对象
            price: 100, //价格
            count: 1, //数量
            foodName: '苹果', //食物名称
            setPrice(){
                set(state => {state.price ++})
            }, //设置价格
        })),
        {
            name: 'myInsBookStore', // 存储的名称，用于区分不同的store对象
            storage: createJSONStorage(() => localStorage), // 存储方式，这里使用localStorage

            partialize: (state) => { // 可选，用于过滤掉不需要存储的状态
                return { count: state.count} // 只存储price和count状态
            }
        }
    )

    // immer(
    //     persist((set, get) => ({ // immer中间件，用于支持直接修改state对象，而不需要返回新的state对象
    //         price: 100, //价格
    //         count: 1, //数量
    //         foodName: '苹果', //食物名称
    //         setPrice(){
    //             set(state => {state.price = 200})
    //         }, //设置价格
            
    //     }),{
    //         name: 'test1111', // 存储的名称，用于区分不同的store对象
    //     })
    // )
)

// set(state => {state.count++});  //推荐写法 √
export default useInsBookStore;